1. Field of Invention
The invention relates to data storage systems, specifically to a new storage channel architecture.
2. Related Art
Storage arrays often include a number of devices, such as disk drives, RAM disks, tape drives, and memory chips, connected to a controller by storage channels, such as a bus or cable. The controller provides an external access interface, managing transfer of data between the external access interface and the storage devices.
For disk drives and RAM disks, a storage array is commonly called a disk array, in which a disk controller connects a host computer to multiple disk drives. The disk controller may provide access to the actual drives in a JBOD (just a bunch of drives) configuration, or the disk controller may perform striping of data across the drives in a redundant array of independent disks (RAID) configuration. Storage channels often include AT Attachment (ATA), small computer system interface (SCSI), fibre channel, or storage system architecture (SSA). The external access interfaces often include industry standard architecture (ISA), bus or peripheral component interconnect (PCI) bus (for host adapters), SCSI, fibre channel, or SSA.
For tape drives, the storage array commonly includes individual tapes or tape silos. The controller may provide data striping capability across the tapes. The storage channels and external access interfaces are usually the same as for disk drives.
For memory chip storage devices, the storage array commonly is the main processor memory, cache memory, or other memory subsystem. The controller commonly performs error detection and correction (parity and ECC) and provides data striping (usually called interleaving). The storage channels are the memory buses. The external access interfaces are commonly PCI bus or processor bus.
In order to maintain access to the storage devices in the event of a single controller failure (to provide high-availability), two controllers may be attached to the same storage devices, in a xe2x80x98dual-controllerxe2x80x99 configuration. One controller may provide access to one set of storage devices and the other controller may provide access to another set of storage devices. Such a configuration is to provide access to the storage devices from the surviving controller should one controller fail.
FIG. 1 (Prior Art) shows a storage array with two controllers 10, each with one external access interface 12. Both controllers 10 are connected via three shared storage channels, e.g., channel 14, to six (single-ported SCSI drive) storage devices, e.g., storage devices 16. FIG. 2 (Prior Art) shows a storage array with two controllers 10, each with one external access interface 12. Both controllers 10 are connected via two shared storage channels, e.g., storage channel 14, to six (dual-ported FC-AL drive) storage devices, e.g., storage device 16. In both architectures all of the storage channels are connected to both controllers to allow either controller to access any storage device via any storage channel. For dual-ported storage devices, this configuration allows a single storage channel to fail, while still retaining access to the drive from either controller.
A particular controller supports a maximum number of storage channels. This determines the maximum bandwidth, xe2x80x98Bxe2x80x99, for data transfers between the storage devices and the controller. In a dual-controller configuration, the two controllers could potentially support double this bandwidth, xe2x80x98Bxc3x972xe2x80x99; however, since the storage channels are connected to both controllers for high availability, these shared storage channels only support a combined bandwidth of xe2x80x98Bxe2x80x99.
Normally about half of the maximum bandwidth, xe2x80x98B/2xe2x80x99, is used by each controller, since each controller only accesses its own storage devices. Only in the case of a controller failure, does the surviving controller use all its potential bandwidth xe2x80x98Bxe2x80x99 on all of the storage channels. So in a normal non-failure case, half of the storage channel bandwidth on a controller, and its associated hardware capability, is unused thereby increasing the cost of the controller.
Furthermore, when additional storage devices are added to a storage array, the maximum bandwidth does not change, so at some point additional storage devices merely add to the total storage data capacity, and not to the storage array performance.
New storage devices may be connected to a new pair of controllers. This however creates a second storage array independent of the original storage array. Having multiple storage arrays increases the complexity and cost of the overall storage subsystem, both in terms of administration and maintenance. Furthermore, a controller in one storage array cannot access a storage device in the other storage array. Therefore, with two independent storage arrays an external switching mechanism (e.g. Fibre Channel switch) may be needed on the external access interfaces to allow an external access interface to transfer data to and from any of the storage devices.
According to an embodiment of the invention, a data storage system has a first storage channel, a first controller coupled to the first storage channel, a first storage device coupled to the first storage channel, a second storage channel, a second storage device coupled to the second storage channel, and a switch coupled to the first storage channel and the second storage channel. The switch separates the first storage channel from the second storage channel in a first state and connects the first storage channel and the second storage channel in a second state.
According to another embodiment of the invention, a data storage system, comprises a first storage channel, a first controller coupled to the first storage channel, a first storage device coupled to the first storage channel, a second storage channel, a second controller coupled to the second storage channel, a second storage device coupled to the second storage channel, a third storage channel coupled to the first controller and the first storage device, a fourth storage channel coupled to the second controller and the second storage device, and a switch coupled to the first storage channel and the second storage channel. The switch separates the first storage channel from the second storage channel in a first state and connects the first storage channel and the second storage channel in a second state.
According to yet another embodiment of the invention, a data storage system comprises a first storage channel, a first storage device coupled to the first storage channel, and a switch coupled to the first storage channel. The switch is coupled to an interface to couple to a second storage channel that is coupled to a second storage device. The switch separates the first storage channel from the second storage channel in a first state and connects the first storage channel and the second storage channel in a second state.
According to yet another embodiment of the invention, a data storage system, comprises a fibre channel loop, a first plurality of storage devices coupled to the fibre channel loop, a loop resiliency circuit coupled to the fibre channel loop. The loop resiliency circuit has an interface to couple to a second storage channel that is coupled to a second plurality of storage devices, and the loop resiliency circuit is to separate the fibre channel loop from the second storage channel in a first state and to connect the fibre channel loop and the second storage channel in a second state.
Yet another embodiment of the invention relates to a method of controlling a data storage system having a first storage channel, a first storage device coupled to the first storage channel, an operational controller coupled to the first storage channel, a second storage channel, a second storage device coupled to the second storage channel, and a switch coupled to the first storage channel and the second storage channel. The method includes detecting whether an operational controller is coupled to the second storage channel and if an operational controller is coupled to the second storage channel, then opening the switch.
According to yet another embodiment of the invention, a data storage system comprises a first storage channel, a first controller coupled to the first storage channel, a first storage device coupled to the first storage channel, a second storage channel, a second storage device coupled to the second storage channel, a switch coupled to the first storage channel and the second storage channel, and logic that controls the switch according to whether an operational controller is coupled to the second storage channel.